package lambda;

import java.io.File;
import java.io.FileFilter;

/**
 * JDK8之后java推出了一个新的特性:lambda表达式
 * 他可以用更新精简的语法创建匿名内部类
 * 需要注意:只有实现的接口中包含一个抽象方法时才可以使用lambda表达式创建匿名内部类.
 * 语法:
 *
 * (参数列表)->{
 *     方法体
 * }
 */
public class LambdaDemo {
    public static void main(String[] args) {
        //创建一个文件过滤器，过滤器内容:保留文本文件;
        FileFilter boo = new FileFilter() {
            public boolean accept(File file) {
                return file.getName().startsWith(".");
            }
        };
//        //lambda表达式:
//        FileFilter filter =(File oo)->{
//                return oo.getName().startsWith(".");
//        };
//
//        //lambda中参数的类型可以不写:
//        FileFilter filter1 = (file1)->{
//          return file1.getName().startsWith(".txt");
//        };
//
//        //如果方法体中只有一句代码，则方法体的{}可以忽略不写，如果有return也要一同忽略
//        FileFilter filter1 = (f)->f.getName().startsWith(".txt");
//
//        //如果参数列表中只有一个参数，那么()小括号可以不写
//        FileFilter filter1 = f->f.getName().startsWith(".txt");

          //获取当前目录中所以的文本文件
        File dir = new File(".");
        File[] subs = dir.listFiles(f->f.getName().startsWith(".txt"));
        System.out.println(subs.length);

    }
}
